Overview of settings settings and hardware requirements for Smoothieboard's network interface.

Settings

Smoothie supports Ethernet access.

It must be enabled in the configuration file.

To enable network, set network.enable to «true».

The IP address can be set statically or set to use dhcp.

Here is an example of a setup using DHCP

# network settings
network.enable                               true            # enable the ethernet network services
network.webserver.enable                     true             # enable the webserver
network.telnet.enable                        true             # enable the telnet server
network.plan9.enable                         true             # enable the plan9 network filesystem
network.ip_address                           auto             # use dhcp to get ip address

And an example of how to setup with a static IP

# network settings
network.enable                               true             # enable the ethernet network services
network.webserver.enable                     true             # enable the webserver
network.telnet.enable                        true             # enable the telnet server
network.plan9.enable                         true             # enable the plan9 network filesystem
network.ip_address                           192.168.3.222    # the IP address
network.ip_mask                              255.255.255.0    # the ip mask
network.ip_gateway                           192.168.3.1      # the gateway address

The basic network configuration options can be seen at the end of the Config Sample.

If your configuration file does not contain the network section, it probably means the version of Smoothie that shipped with your board is too old. You need to use the latest edge firmware, and use the latest configuration file.
See Flashing Smoothie Firmware and Configuring Smoothie.

All options

Option Example value Explanation
network.enable false If set to true, enable the Ethernet network services
network.webserver.enable true If set to true, enable the web server service, on port 80, which provides a control and upload web interface
network.telnet.enable true If set to true, enable the telnet service, on port 23, which behaves much like a Serial interface
network.plan9.enable false If set to true, enable the plan9 network filesystem on port 564 which allows mounting the Smoothieboard
network.ip_address auto If set to auto, use DHCP to request an IP address. If set to an IP address, use that address as a static IP.
network.ip_mask 255.255.255.0 If using a static IP, define the mask for the network.
network.ip_gateway 192.168.3.1 If using a static IP, define the gateway for the network.
network.mac_override AB.AB.AB.AB.AB.AB If set, override the MAC adress for the Ethernet interface. Only set this if you have a conflict on your network.
network.hostname shapeoko17 Some DHCP servers accept a hostname for the machine, which then allows you to connect to it using that name instead of it's IP.

Servers

smoothie-web.png

There are 34servers running on the network.

  1. Telnet at port 23 allows command access, it can also be used to stream gcode (See the smoothie-stream.py example), also you can connect to this port with recent versions of Pronterface ( instead of inputing a serial port, input ip_of_smoothie:23.
  2. SFTP at port 115 (http://en.wikipedia.org/wiki/Simple_File_Transfer_Protocol NOT secure file transfer!) allows uploading of files, see the smoothie-upload.py example
  3. Webserver at port 80
  4. Plan9 (9P/Styx) network file system running on port 564

The web-server serves a simple built-in web page. You can access it by going to this address in your web browser :

http://smoothieip

A custom web page can be accessed from sdcard too by going to

http://smoothieip/sd/webif/index.html

Where smoothieip is the IP address of your smoothie board

From the console you can use the net command to see what your ip address is.

It will also be displayed on your panel if you have one.

From the telnet console there are some commands to see what connections exist, (like netstat).

Current pronterface can connect over ethernet to port 23.

Just enter your smoothie's IP address followed by a colon and 23 in the Port field. For example: 192.168.2.120:23.

You can even address your smoothie by name by putting a host name in your hosts file. For example: if you add

192.168.2.120        smoothie

In hosts, then you can enter smoothie:23 in the Port field of Pronterface for telnet, and simply smoothie in your web-browser.

Plan9 network filesystem

The plan9 network file system can be used on Linux to directly mount the Smoothieboard over the network. At first activate the option "network.plan9.enable" and restart your Smoothie. After that you can mount with:

mount -t 9p 192.168.2.120 -o dfltuid=1000,dfltgid=1000 /mnt/smoothie

Now you can access the SD card of the Smoothieboard like a normal filesystem!

The dfltuid/dfltgid are the uid/gid of the user which owns the files in the mount. It is recommended to set these to the uid/gid of the user which will write to the filesystem.

If you want you can also add the filesystem to your /etc/fstab as follows:

# /etc/fstab
# <file system> <mount point> <type> <options>                      <dump> <pass>
... your other stuff ...
192.168.1.6     /mnt/smoothie 9p     user,noauto,dfltuid=1000,dfltgid=1000 0      0

Hardware requirements

To use the network capabilities of the smoothieboard (4X and 5X, note the 3X board does not have ethernet capabilities ) a RJ45 Magnetic Modular Jacks aka RJ45 network transformer like the Hanrun HR911105A needs to be soldered onto the board.

The are for example available from Uberclock and RobotSeed.

Soldered by default

Versions of Smothieboard starting August 2014 have the Ethernet connector soldered by default.

Model

Note it must be a Mag ( Magnetic ) Jack, a standard Rj45 connector will not work.

The only officially supported connector is the Hanrun HR911105A

Hostname

You can configure a hostname for the DHCP server as such : 

network.ip_address  auto          # use dhcp to get IP address
network.hostname   smoothie1   # optionally set this hostname for dhcp

Note the network.hostname is optional. (see section 3.14 https://www.ietf.org/rfc/rfc2132.txt)